Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dayanıklı Görev Zamanlayıcı, kimlik doğrulaması için yönetilen kimliği kullanır. Kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği kullanabilirsiniz. Kullanıcı tarafından atanan kimlikler, uygulamanın yaşam döngüsüne bağlı olmadığından ve uygulama sağlama kaldırıldıktan sonra yeniden kullanılabilir olduğundan önerilir.
Bu makale, yönetilen kimliği yapılandırmanın iki yolunu kapsar:
- Hızlı kurulum : Rol atama, kimlik eki ve ortam değişkeni yapılandırmasını otomatik hale getiren tek bir CLI komutu.
- El ile kurulum — Her yapılandırma adımı üzerinde tam denetim için adım adım yönergeler.
Prerequisites
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Dayanıklı Görev Zamanlayıcı ve görev hub'ı kaynağı zaten sağlanmış.
-
uzantısı yüklü
durabletask(az extension add --name durabletask). - Zamanlayıcı kaynağında sahip veya Kullanıcı Erişimi Yöneticisi rolü (rol atamaları oluşturmak için gereklidir).
Kalıcı Görev Zamanlayıcı RBAC Rolleri
Bir kimliğe aşağıdaki Dayanıklı Görev Zamanlayıcı ile ilgili rolleri vekleyebilirsiniz:
| Rol | Açıklama |
|---|---|
| Kalıcı Görev Verisi Katılımcısı | Tüm veri erişim işlemleri için rol. Bu rol, diğer tüm rollerin üst kümesidir. |
| Dayanıklı Görev Çalışanı | Çalışan uygulamaları tarafından Dayanıklı Görev Zamanlayıcı ile etkileşime geçmek için kullanılan rol. Uygulamanız yalnızca düzenleme, etkinlik ve varlıkları işlemek için kullanılıyorsa bu rolü atayın. |
| Dayanıklı Görev Veri Okuyucusu | Tüm Dayanıklı Görev Zamanlayıcı verilerini okuma rolü. Yalnızca orkestrasyonları listelemeniz ve varlık yüklerini okumanız gerekiyorsa bu rolü atayın. |
Uyarı
Çoğu uygulama, Dayanıklı Görev Verileri Katkısı Rolü gerektirir.
az durabletask scheduler attach ile hızlı kurulum
komutu rol az durabletask scheduler attach atamasını, kimlik ekini ve ortam değişkeni yapılandırmasını tek bir komutta otomatikleştirir.
Aşağıdaki örnek, Kullanıcı Tarafından Atanan Yönetilen Kimlik kullanarak İşlev Uygulamasına bir zamanlayıcı ekler ve bu kimlik Durable Task Data Contributor rolüne sahiptir.
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Web/sites/FUNCTION_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
Kapsayıcı Uygulaması için:
az durabletask scheduler attach \
--resource-group RESOURCE_GROUP_NAME \
--name SCHEDULER_NAME \
--task-hub-name TASKHUB_NAME \
--role-type contributor \
--target /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.App/containerApps/CONTAINER_APP_NAME \
--identity /subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/IDENTITY_NAME
Uyarı
parametresini --identity atlarsanız, komut bunun yerine sistem tarafından atanan yönetilen kimliği kullanır.
Daha fazla bilgi için bkz. az durabletask scheduler attach.
El ile kurulum
Her adım üzerinde ayrıntılı denetime ihtiyacınız varsa RBAC atamak, kimliği eklemek ve ortam değişkenlerini tek tek yapılandırmak için aşağıdaki el ile yönergeleri izleyin.
Yönetilen kimlik kaynağına rol tabanlı erişim denetimi (RBAC) atama
Kullanıcının atadığı yönetilen kimliği oluşturun
az identity create -g RESOURCE_GROUP_NAME -n IDENTITY_NAMEAtamayı oluşturulan kimlik kaynağına ayarla
assignee=$(az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsv)Kapsamı ayarlayın. En az ayrıcalıklı erişim için görev hub'ı kapsamını kullanın. Zamanlayıcı kapsamını yalnızca kimliğin bir zamanlayıcıdakitüm görev hub'larına erişmesi gerekiyorsa kullanın.
Görev hub'ı kapsamı (önerilen)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASKHUB_NAME"Zamanlayıcı kapsamı (tüm görev hub'ları)
scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"Erişim izni verin. Rol atamasını oluşturmak ve erişim vermek için aşağıdaki komutu çalıştırın.
az role assignment create \ --assignee "$assignee" \ --role "Durable Task Data Contributor" \ --scope "$scope"Beklenen çıkış
Aşağıdaki çıkış örneği, zamanlayıcı düzeyinde Dayanıklı Görev Veri Katılımcısı rolü atanmış bir geliştirici kimliğini göstermektedir.
{ "condition": null, "conditionVersion": null, "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID", "createdOn": "2024-12-20T01:36:45.022356+00:00", "delegatedManagedIdentityResourceId": null, "description": null, "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID", "name": "ROLE_ASSIGNMENT_ID", "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID", "principalName": "YOUR_EMAIL", "principalType": "User", "resourceGroup": "YOUR_RESOURCE_GROUP", "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID", "roleDefinitionName": "Durable Task Data Contributor", "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME", "type": "Microsoft.Authorization/roleAssignments", "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID", "updatedOn": "2024-12-20T01:36:45.022356+00:00" }
Uyarı
Aşağıdaki yönerge, kapsamı belirli bir görev hub'ına göre belirlenmiş bir rol atamasını gösterir. Zamanlayıcıdaki tüm görev hub'larına erişmeniz gerekiyorsa, atamayı zamanlayıcı düzeyinde gerçekleştirin.
Portalda Dayanıklı Görev Zamanlayıcı kaynağına gidin.
Bir görev merkezi adı seçin.
Sol menüde Erişim denetimi (IAM) öğesini seçin.
Rol ataması eklemek için Ekle'yi seçin.
Dayanıklı Görev Verileri Katkıda Bulunanı'yı arayın ve seçin. sonrakiseçin.
Üyeler sekmesinde, Erişim ata için Yönetilen kimlik'i seçin.
Üyeler için + Üye seç'i seçin.
Yönetilen kimlikleri seçin bölmesinde Yönetilen kimlik açılan listesini genişletin ve Kullanıcı tarafından atanan yönetilen kimlik'i seçin.
Daha önce oluşturulan kullanıcı tarafından yönetilen kimliği seçin ve Seç'i seçin.
Rolü atamayı tamamlamak için Gözden geçir ve ata seçin.
Uygulamanıza yönetilen kimlik atama
Artık kimliğin Dayanıklı Görev Zamanlayıcı'ya erişmek için gerekli RBAC'ye sahip olduğuna göre, bunu uygulamanıza atamanız gerekir.
Yönetilen kimliğin kaynak kimliğini alın.
resource_id=$(az resource show --resource-group RESOURCE_GROUP_NAME --name IDENTITY_NAME --resource-type Microsoft.ManagedIdentity/userAssignedIdentities --query id --output tsv)Kimliği uygulamaya atayın.
az functionapp identity assign --resource-group RESOURCE_GROUP_NAME --name FUNCTION_APP_NAME --identities "$resource_id"
Portaldaki uygulamanızdan Ayarlar>Kimliği'ni seçin.
Kullanıcı tarafından atanan sekmesini seçin.
+ Ekle'yi ve ardından son bölümde oluşturulan kimliği seçin. Add (Ekle) seçeneğini belirleyin.
Uygulamanıza ortam değişkenleri ekleme
Uygulamanıza aşağıdaki iki ortam değişkenini ekleyin:
| Ortam değişkeni | Değer | Example |
|---|---|---|
DURABLE_TASK_SCHEDULER_CONNECTION_STRING |
Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID> |
Endpoint=https://myscheduler.westus2.durabletask.io;Authentication=ManagedIdentity;ClientID=00000000-0000-0000-0000-000000000000 |
TASKHUB_NAME |
Görev hub'ının adı | my-task-hub |
Uyarı
system-assigned kimliği kullanıyorsanız, bağlantı dizgesinden ClientID parametresini çıkarın: "Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity".
bağlantı dizesi için gerekli bilgileri alın.
Zamanlayıcı uç noktasını alın:
az durabletask scheduler show --resource-group RESOURCE_GROUP_NAME --name SCHEDULER_NAME --query 'properties.endpoint' --output tsvYönetilen kimliğin istemci kimliğini alın:
az identity show --name IDENTITY_NAME --resource-group RESOURCE_GROUP_NAME --query 'clientId' --output tsvUygulamanızda her iki ortam değişkenini de ayarlayın.
az functionapp config appsettings set \ --resource-group RESOURCE_GROUP_NAME \ --name FUNCTION_APP_NAME \ --settings \ DURABLE_TASK_SCHEDULER_CONNECTION_STRING="Endpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>" \ TASKHUB_NAME="<TASKHUB_NAME>"
bağlantı dizesi için gerekli bilgileri alın.
Zamanlayıcı uç noktanızı almak için zamanlayıcı kaynağınızın Genel Bakış sekmesine gidin ve Temel Bileşenler bölümünde Uç Nokta'yı bulun.
Yönetilen kimlik istemci kimliğinizi almak için yönetilen kimlik kaynağınızın Genel Bakış sekmesine gidin ve Temel Bilgiler bölümünde İstemci Kimliği'ni bulun.
Portalda uygulamanıza gidin.
Sol menüde Ayarlar>Ortam değişkenleri'ni seçin.
değerine
DURABLE_TASK_SCHEDULER_CONNECTION_STRINGsahip adlıEndpoint=<SCHEDULER_ENDPOINT>;Authentication=ManagedIdentity;ClientID=<IDENTITY_CLIENT_ID>bir ortam değişkeni ekleyin.Görev hub'ınızın adıyla adlı
TASKHUB_NAMEbir ortam değişkeni ekleyin.Değişkenleri kaydetmek için Uygula'yı ve ardından Onayla'yı seçin.