我正在嘗試創建一個 bash 腳本來將 EC2 實體更新到最新版本的 Boto3。為此,我需要將 .zip 檔案放入指定的 S3 存盤桶中。我希望用戶在部署堆疊時輸入他們的 S3 存盤桶的名稱,然后將其輸入到 bash 腳本中。這是我的代碼:
Parameters:
BucketName:
Type: String
Resources:
rRunLambdaLayerScript:
Type: AWS::SSM::Association
Properties:
Name: AWS-RunShellScript
WaitForSuccessTimeoutSeconds: 300
Targets:
- Key: tag:Lambda
Values:
- layer
Parameters:
commands:
- |
#!/usr/bin/env bash
mkdir lambda_layer
cd lambda_layer/
mkdir python
cd python/
pip3 install boto3 -t ./
cd ..
zip -r /tmp/lambda_layer.zip .
aws s3 cp /tmp/lambda_layer.zip s3://$BucketName
這樣做會導致腳本將其留空,并顯示“引數驗證失敗”錯誤。
uj5u.com熱心網友回復:
您通常為此使用Sub:
Parameters:
BucketName:
Type: String
Resources:
rRunLambdaLayerScript:
Type: AWS::SSM::Association
Properties:
Name: AWS-RunShellScript
WaitForSuccessTimeoutSeconds: 300
Targets:
- Key: tag:Lambda
Values:
- layer
Parameters:
commands:
- !Sub |
#!/usr/bin/env bash
mkdir lambda_layer
cd lambda_layer/
mkdir python
cd python/
pip3 install boto3 -t ./
cd ..
zip -r /tmp/lambda_layer.zip .
aws s3 cp /tmp/lambda_layer.zip s3://${BucketName}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380787.html
