Fitur Actions adalah fitur alfa
yang memperluas rentang metode API yang dapat dipanggil oleh Deployment Manager. Karena fitur ini tidak didukung, sebaiknya
migrasikan penggunaan
Actions yang ada ke alternatif yang didukung. Action storage.buckets.setIamPolicy yang umum digunakan sesuai dengan jenis resource Deployment Manager yang ada, virtual.buckets.iamMemberBinding, yang dapat Anda gunakan untuk menggantinya.
Memigrasikan deployment dari storage.buckets.setIamPolicy ke virtual.buckets.iamMemberBinding
Resource virtual.buckets.iamMemberBinding adalah resource virtual yang mewakili binding kebijakan Identity and Access Management (IAM). Jenis lengkapnya adalah gcp-types/storage-v1:virtual.buckets.iamMemberBinding.
virtual.buckets.iamMemberBinding memiliki implementasi kustom dari operasi buat, baca, perbarui, dan hapus (CRUD) dari backend Deployment Manager. Metode ini memanggil metode yang serupa dengan metode yang dipanggil oleh Action storage.buckets.setIamPolicy, tetapi dimodelkan sebagai resource normal, bukan Action, dan mengikuti siklus proses yang sama dengan jenis resource normal.
Untuk memigrasikan deployment, ganti penggunaan Action storage.buckets.setIamPolicy dengan resource virtual.buckets.iamMemberBinding di semua file konfigurasi deployment Anda. Jika memiliki beberapa binding, Anda mungkin memerlukan beberapa resource untuk menerapkan logika yang sama di seluruh binding tersebut. Jenis virtual tidak mengganti binding yang ada pada resource, tetapi menambal binding baru.
Contoh penggunaan untuk migrasi manual
Untuk menyelesaikan migrasi secara manual, lihat contoh penggunaan berikut. Dalam kasus tertentu, seperti penerapan beberapa binding IAM, Anda mungkin perlu menambahkan metadata.dependsOn atau referensi ke resource lain ke resource iamMemberBinding untuk menghindari situasi seperti kondisi race.
YAML + Jinja
Berikut adalah contoh cara penggunaan Action setIamPolicy dalam file konfigurasi YAML. Pendekatan ini tidak didukung, dan harus diganti dengan penggunaan resource virtual iamMemberBinding:
- name: patch-iam-policy
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket:
policy: # existing policy, e.g. from a getIamPolicyAction
gcpIamPolicyPatch:
add:
Contoh berikut menunjukkan penggunaan resource virtual iamMemberBinding yang direkomendasikan dalam template YAML dan Jinja:
{% set BUCKETNAME = "bucket-" + env["deployment"] %}
resources:
- type: gcp-types/storage-v1:buckets
name: {{ BUCKETNAME }}
properties:
location: US
storageClass: STANDARD
- type: gcp-types/storage-v1:virtual.buckets.iamMemberBinding
name: test-bucket-iam
properties:
bucket: $(ref.{{ BUCKETNAME }}.name)
member: projectEditor:{{ env["project"] }}
role: roles/storage.admin
Python
Berikut adalah contoh cara penggunaan Action setIamPolicy dalam template Python. Pendekatan ini tidak didukung, dan harus diganti dengan penggunaan resource virtual iamMemberBinding:
Contoh berikut menunjukkan penggunaan resource virtual iamMemberBinding yang direkomendasikan dalam template Python:
Anda dapat menemukan contoh tambahan terkait
gcs-bucket.pytemplate
di
cloud-foundation-toolkitrepositori
di GitHub. Untuk mengetahui demonstrasi mendetail tentang proses mengonversi template
gcs-bucket.py dari penggunaan Action setIamPolicy ke penggunaan
resource virtual iamMemberBinding, lihat
contoh konversi.
Anda juga dapat menemukan
contoh penggunaan
template yang dikonversi.