Fitur Actions adalah fitur alfa
yang memperluas rentang metode API yang dapat
dipanggil Deployment Manager. Karena fitur ini tidak didukung, sebaiknya Anda
memigrasikan penggunaan Action yang ada
ke alternatif yang didukung. Tindakan
storage.buckets.setIamPolicy
yang umum digunakan sesuai dengan jenis resource Deployment Manager
yang ada, virtual.buckets.iamMemberBinding
, yang dapat Anda gunakan untuk menggantikannya.
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 operasi create,
read, update, dan delete (CRUD) dari backend Deployment Manager. Metode ini memanggil metode yang mirip dengan metode yang dipanggil oleh Action
storage.buckets.setIamPolicy
, tetapi dimodelkan sebagai resource normal, bukan
Action, dan mengikuti siklus proses yang sama seperti 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. Jenis virtual tidak menggantikan
binding yang ada pada resource, tetapi menerapkan patch pada yang baru.
Contoh penggunaan untuk melakukan migrasi secara 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 perlombaan.
YAML + Jinja
Berikut adalah contoh 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 Tindakan 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 yang terkait dengan
template gcs-bucket.py
di
repositori cloud-foundation-toolkit
di GitHub. Untuk demonstrasi mendetail tentang proses mengonversi
template gcs-bucket.py
dari penggunaan Action setIamPolicy
menjadi penggunaan
resource virtual iamMemberBinding
, lihat
contoh konversi.
Anda juga dapat menemukan
contoh penggunaan
template yang dikonversi.