Bağlantı dizesini kullanırken Azure işlev tüketicisi 401 alır

0

Soru

Azure mekanizmalarında çok yeniyim ve bu soruna takıldım.

Bir olay merkezinde yayınlanan olaylar tarafından tetiklenmesi gereken bir azure işlevim var. Event hub azure portal sayfasında ("yönet" hibe seçeneğiyle) elde edilen sas bağlantı dizesini ayarladım ve EventHubTrigger ek açıklamasında aynı anahtarı kullandım (Bu bir Java 11 işlevidir)

İlk başta IP işlevinin bağlantısının engellendiğini belirten bir hata aldım, olay hub'ının ağ ayarlarında "güvenilir Microsoft hizmetine izin ver" i işaretleyerek kurtulduğum hata.

Sonra 401 yetkisiz erişimim oldu.

Tüm IPs kısıtlamalarını event hub'dan kaldırma (herkese açık hale getirme) event hub'a aktarılan olayları dinlemeye ve işlemeye başlar.

Açıkçası bu kısıtlamaları geri koymak istiyorum, ancak 401 istisnası durmayacak.

Neyi kaçırıyorum?

Düzenle (İşlev kodu ekleme):

public class Function {
    @FunctionName("feed-collector")
    public void run(
            @EventHubTrigger(name = "collect", consumerGroup = "$Default", connection = "AzureEventHubConnectionString", eventHubName = "feed-ordini", cardinality = Cardinality.MANY)
            String message,
            final ExecutionContext context
    ) {
        context.getLogger().info(message);
    }
}

AzureEventHubConnectionString uygulama ayarlarında tanımlanır ve değeri biçimdedir

Endpoint=sb://[hub-host].servicebus.windows.net/;SharedAccessKeyName=[SasPolicyName];SharedAccessKey=[primarykey]

azure azure-eventhub azure-functions
2021-11-23 21:26:35
2
0

Olarak başına belgelerine,

Politika kuralının sağladığı haklar aşağıdakilerin bir kombinasyonu olabilir:

  • Gönder-Kuruluşa mesaj gönderme hakkını verir
  • Dinle-Varlığı dinleme veya alma hakkını verir
  • Yönet-Varlıkların oluşturulması ve silinmesi de dahil olmak üzere ad alanının topolojisini yönetme hakkını verir

Sizin durumunuzda, işleviniz eventhub'dan olayları dinlediğinden, bir dinleme ilkesi SAS kullanmalısınız.

2021-11-24 01:15:05
0

SAS Politikası, ayrıntılı kapsamı tüketici düzeyinde değil, yalnızca varlık düzeyinde verir.

Bu, ad alanı düzeyinde veya olay merkezi örneğinde veya konu düzeyinde tanımlanan ayrıcalıkların söz konusu varlığın tüketici grubuna uygulanacağı anlamına gelir.

Event hub azure portal sayfasında elde edilen sas bağlantı dizesini ayarladım ("yönet" hibe seçeneği ile)

Olay hub'ları belirteci kimlik doğrulaması, istemcilerinin Olay Hub'ları ad alanına veya olay hub örneğine veya konusuna atanan yönetme haklarına veya dinleme ayrıcalıklarına sahip olmasını gerektirir.

Bir ilkeden imza (SAS belirteci) oluşturmadaki Java Kodu için buraya bakın.

Gönderme, Dinleme ve Yönetme, ad alanına veya varlık ilkesine uygulanan kuralların sınırı ve SAS kullanırken en iyi uygulamalar gibi ilke kuralları hakkında ayrıntılı bilgileri okumak için lütfen bu Microsoft belgelerine bir göz atın.

2021-11-24 03:18:35

Ben vardı bir göz at belgelerine ama ben buldum cevap yok. İşlev tetiklenmezse SAS belirtecini Java kodundan nasıl oluşturabilirim? Ve SAS belirtecini işlevin dışından oluştursam bile, onu nerede kullanmalıyım?
Esotopo21

lütfen olayı tetiklemek için yazdığınız işlev kodunu verebilir misiniz?
HariKrishnaRajoli-MT

Soruyu, kullandığım kod ve bağlantı dizesiyle düzenledim
Esotopo21

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................