Open2

pulumiのTIPS

shoetshoet

マネージドポリシーをロールに割り当てる

  • ManagedPolicyArnsにポリシーのArnを指定する。
exampleRole, err := iam.NewRole(
  ctx,
  resourceName,
  &iam.RoleArgs{
    AssumeRolePolicy: pulumi.String(`{
      "Version": "2012-10-17",
      "Statement": [{
        "Effect": "Allow",
        "Principal": {
          "Service": "codedeploy.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }]
    }`,
    ),
 // ここを指定する
    ManagedPolicyArns: pulumi.StringArray{
      pulumi.String("arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS"),
    },
  })

shoetshoet

pulumi destroyでリソースを消さないままにする

  • 検証時に上げ下ろしする際にECRなどの消したくないリソースも消えてしまったため調査。
  • pulumi.ResourceOptionにpulumi.Protect(true)を指定する。
resourceName := "xxx-ecr"
ecrRepository, err := ecr.NewRepository(
  ctx,
  resourceName,
  &ecr.RepositoryArgs{
    Name: pulumi.String(resourceName),
    ImageScanningConfiguration: &ecr.RepositoryImageScanningConfigurationArgs{
      ScanOnPush: pulumi.Bool(false),
    },
    EncryptionConfigurations: ecr.RepositoryEncryptionConfigurationArray{
      &ecr.RepositoryEncryptionConfigurationArgs{
        EncryptionType: pulumi.String("KMS"),
      },
    },
    ImageTagMutability: pulumi.String("MUTABLE"),
    Tags:               createNameTag(resourceName),
  },
  pulumi.Protect(true), // ここを指定する。
)