Rumah >pembangunan bahagian belakang >Golang >Azure golang SDK - Berikan peranan AcrPull kepada gugusan AKS
editor php Xinyi memperkenalkan kepada anda ciri penting dalam Azure golang SDK: memperuntukkan peranan AcrPull kepada gugusan AKS. Ciri ini boleh membantu pembangun mengurus dan menggunakan imej kontena dengan lebih mudah pada platform awan Azure. Dengan menggunakan SDK golang, pembangun boleh menetapkan peranan AcrPull dengan mudah kepada gugusan AKS, dengan itu membolehkan fungsi menarik dan menggunakan imej bekas peribadi dalam gugusan. Ini bukan sahaja meningkatkan kecekapan membangunkan dan menggunakan aplikasi kontena, tetapi juga meningkatkan keselamatan dan kebolehkawalan, memberikan pembangun pengalaman pengguna yang lebih baik.
Selepas mencipta kluster AKS dan ACR, saya kini cuba memberikan peranan AcrPull
secara pemrograman kepada kluster AKS.
Pada masa ini saya cuba melakukan ini menggunakan fungsi RoleAssignmentsClient.Create() daripada SDK golang.
Ini yang saya cuba setakat ini:
<code>AcrPullDefinitionID := "/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d" // pulled that ^ off of: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#acrpull providerNamespace := "/providers/Microsoft.ContainerService/managedClusters/" scope := "/subscriptions/" + subscriptionID + "/resourceGroups/" + resourceGroupName + providerNamespace + resourceName res, err := raClient.Create(ctx, scope, roleAssigmentName, armauthorization.RoleAssignmentCreateParameters{ Properties: &armauthorization.RoleAssignmentProperties{ PrincipalID: to.Ptr(clientID), PrincipalType: to.Ptr(armauthorization.PrincipalTypeServicePrincipal), RoleDefinitionID: to.Ptr("/subscriptions/" + subscriptionID + AcrPullDefinitionID), }, }, nil) </code>
Apabila saya membuat panggilan dengan nilai di atas, saya mendapat ralat berikut:
for resource: {AKSClusterName} of type: /providers/Microsoft.ContainerService/managedClusters/ Unable to create roleAssignment: PUT https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourceGroup}/providers/Microsoft.ContainerService/managedClusters/{AKSClusterName}/providers/Microsoft.Authorization/roleAssignments/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d -------------------------------------------------------------------------------- RESPONSE 405: 405 Method Not Allowed ERROR CODE UNAVAILABLE -------------------------------------------------------------------------------- { "message": "The requested resource does not support http method 'PUT'." } --------------------------------------------------------------------------------
Saya tidak pasti sama ada ini salah faham konsep atau saya hanya menggunakan API dengan salah.
Sebarang dan semua bantuan akan sangat dihargai. Terima kasih!
Julat yang anda tunjuk nampaknya tidak betul. Apabila menggunakan kebenaran RBAC, anda perlu menetapkan skop kepada sumber yang digunakan oleh dasar RBAC.
Jadi, jika anda menggunakan dasar RBAC untuk kluster AKS anda mempunyai AcrPull
kebenaran, skop hendaklah ditetapkan kepada ID sumber Azure Container Registry.
Atas ialah kandungan terperinci Azure golang SDK - Berikan peranan AcrPull kepada gugusan AKS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!