deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

S3 Select'in MethodNotAllowed hataları, AWS'nin özelliği yeni hesaplara kapatmasına bağlandı

AWS, 25 Temmuz 2024'te S3 Select'i yeni müşterilere kapattı. dev.to'daki bir inceleme, yeni hesapların artık her SelectObjectContent çağrısında MethodNotAllowed aldığını gösteriyor; bu, göç açısından sonuçları olan fiili bir kullanımdan kaldırma.

S3 Select'in MethodNotAllowed hataları, AWS'nin özelliği yeni hesaplara kapatmasına bağlandı

S3 üzerindeki bir nesneye yapılan başarısız SQL sorgusunu inceleyen bir geliştirici, sorunun sessiz sedasız yapılan bir kullanılabilirlik değişikliğine dayandığını ortaya çıkardı: AWS, Temmuz 2024'te S3 Select erişimini yeni müşterilere vermeyi durdurdu ve uygunluğu bulunmayan hesaplar artık her sorgu denemesinde MethodNotAllowed hatası alıyor.

dev.to'da yayımlanan yazı, Buckets masaüstü uygulamasındaki (2.8.7 ve 2.8.9 sürümleri) ve daha da önemlisi doğrudan AWS CLI çağrısındaki dört test senaryosunu adım adım ele alıyor.

Hata nasıl ortaya çıktı

Yazar, küçük bir CSV dosyası — altı çalışan kaydı ve bir başlık satırı, 166 bayt, sıkıştırılmamış, SSE-S3 ile şifrelenmiş — bir test bucket'ına yükledi. Yükleme, metadata doğrulaması ve nesne önizlemesi başarılı oldu. Ancak SELECT * FROM S3Object s LIMIT 5 sorgusu gönderildiğinde "the specified method is not allowed against this resource" hata mesajı döndü.

SQL'i yeniden yazmak işe yaramadı. Özellikle, bilinçli olarak hatalı biçimlendirilmiş bir ifade olan SELECT FROM S3Object s, SQL sözdizimi hatası yerine yine aynı MethodNotAllowed yanıtını üretti; bu da isteğin ifade ayrıştırılmadan önce reddedildiğine işaret ediyor — ancak yazar, testlerin AWS'nin iç doğrulama sırasını ortaya çıkaramayacağını vurguluyor.

Şifreleme tercihi de suçlu değildi: dev.to gönderisine göre SelectObjectContent API dokümantasyonu, SSE-S3 dahil olmak üzere sunucu tarafında şifrelenmiş nesneleri destekliyor.

Uygulama dışında da yeniden üretildi

Uygulama katmanını dışlamak için yazar, eşdeğer select-object-content çağrısını AWS CLI üzerinden çalıştırdı; CSV girdi serileştirmesi kullanıldı ve ilk satırın başlık olarak değerlendirilmesi için FileHeaderInfo ayarı USE yapıldı. CLI de aynı MethodNotAllowed hatasını döndürdü.

Ayrı bir JSON Lines dosyası — beş çalışan kaydı, 314 bayt, sıkıştırılmamış — SELECT s.name, s.department FROM S3Object s WHERE s.department = 'Engineering' sorgusuyla sorgulandığında aynı şekilde başarısız oldu.

dev.to gönderisine göre bu araçlar arası yeniden üretim, incelemedeki en güçlü kanıttı: hata Buckets olmadan da var oluyor ve bu, kesin AWS tarafı sebebi hâlâ çözülmemiş kalmakla birlikte, sorunun AWS servis tarafına işaret etmesini sağlıyor.

Temmuz 2024'te ne değişti

AWS, Temmuz 2024 duyurusunda S3 Select'i yeni müşterilere kapattığını bildirdi; bu 25 Temmuz 2024'te yürürlüğe girdi. Mevcut uygun müşteriler kullanmaya devam edebiliyor, ancak AWS yeni yetenekler eklemeyi planlamadığını da belirtti.

Gönderi iki dikkatli nüans ekliyor. Birincisi, uygunluk sadece hesap yaşı meselesi değil — daha eski bir hesap, tek başına S3 Select erişiminin kanıtı değil. İkincisi, AWS Support, test hesabının uygunluğını bağımsız olarak doğrulamadı; yani gözlemlenen MethodNotAllowed yanıtları kullanılabilirlik kısıtlamasıyla tutarlı olsa da, hata tek başına kesin sebebi ortaya koymuyor.

Belgelenmiş başka olasılıklar da var: AWS API referansı, directory bucket'ların ve S3 on Outposts'un bu işlemi desteklemediğini doğruluyor. Buckets uygulamasının sonraki bir sürümü olan v2.8.9, özgün hata kodunu ve istek tanımlayıcılarını korurken, olası S3 Select kullanılabilirlik sorunlarına atıfta bulunan daha yararlı bir açıklama ortaya çıkardı.

Hâlâ geçerli olan belgelenmiş sınırlar

Erişimi olan hesaplar için biçim kuralları yerinde duruyor. CSV ve JSON girdiler sıkıştırma olmadan, GZIP veya BZIP2 destekliyor; Parquet, tüm nesne sıkıştırması olmadan kolon bazlı GZIP veya Snappy destekliyor. SQL ifadeleri 256 KB ile, girdi ve sonuç kayıtları ise her biri 1 MB ile sınırlı — gönderi, bu kısıtlamaların servis uygunluğundan ayrı olduğunu belirtiyor.

Yazarın sıkıştırma testi — sıkıştırılmamış bir nesne için UI açılır menüsünden BZIP2 seçmek — önceden herhangi bir uyumsuzluk uyarısı vermeden yine MethodNotAllowed döndürdü. Gönderi, açılır menünün yalnızca bir UI kontrolü olarak çalıştığını ve AWS tarafındaki sıkıştırma açma davranışının düzgün şekilde test edilmesinin de çalışır bir S3 Select erişimi gerektireceğini kabul ediyor.

Neden önemli

S3 Select yalnızca bakım modunda olan bir alacakaranlık döneminde: mevcut kullanıcılar elinde tutuyor, yeni hesaplar edinemiyor ve yeni özellik gelmeyecek. Üç sonuç öne çıkıyor. 2026'da tasarlanan pipeline'lar S3 Select'i hiçbir şekilde benimseyemez; dolayısıyla tek bir nesnenin sunucu tarafında filtrelenmesini varsayan mimarilerin farklı bir yaklaşıma ihtiyacı var. Ona bağımlı olan mevcut kod bugün çalışıyor ama donmuş bir API üzerinde duruyor ve bu da uzun vadeli planlamayı riskli kılıyor. Ayrıca kısıtlama, açık bir kullanılabilirlik mesajı yerine genel bir MethodNotAllowed olarak ortaya çıktığı için, hata ayıklamak zaman yakıyor — dev.to incelemesinin tam olarak belgelediği tuzak bu. SelectObjectContent'te bu hatayla karşılaşan herkes, başka bir sorgu yeniden yazmadan önce hesap uygunluğunu kontrol etmeli.

  • #aws
  • #amazon-s3
  • #cloud
  • #sql
  • #deprecation

İlgili yazılar