「aws cloudformation package」コマンドは何してる?
ファイルを手動で S3 バケットにアップロードし、テンプレートに場所を追加する代わりに、ローカルアーティファクトと呼ばれるローカルリファレンスをテンプレート内で指定し、package CLI コマンドを使用してすばやくアップロードできます。
ファイルを指定する場合、コマンドはそれを S3 バケットに直接アップロードします。アーティファクトをアップロードしたら、コマンドはテンプレートのコピーを返します。その中で、ローカルアーティファクトへの参照は、コマンドがアーティファクトをアップロードした S3 の場所に置き換えられます。その後、返されたテンプレートを使用してスタックを作成または更新できます。
以下の場所で参照されているローカルの成果物をアップロードできる。
BodyS3Location property for the AWS::ApiGateway::RestApi resource
Code property for the AWS::Lambda::Function resource
Content property for the AWS::Lambda::LayerVersion resource
CodeUri property for the AWS::Serverless::Function resource
ContentUri property for the AWS::Serverless::LayerVersion resource
Location property for the AWS::Serverless::Application resource
DefinitionS3Location property for the AWS::AppSync::GraphQLSchema resource
RequestMappingTemplateS3Location property for the AWS::AppSync::Resolver resource
ResponseMappingTemplateS3Location property for the AWS::AppSync::Resolver resource
RequestMappingTemplateS3Location property for the AWS::AppSync::FunctionConfiguration resource
ResponseMappingTemplateS3Location property for the AWS::AppSync::FunctionConfiguration resource
DefinitionUri property for the AWS::Serverless::Api resource
Location parameter for the AWS::Include transform
SourceBundle property for the AWS::ElasticBeanstalk::ApplicationVersion resource
TemplateURL property for the AWS::CloudFormation::Stack resource
Command.ScriptLocation property for the AWS::Glue::Job resource
DefinitionS3Location property for the AWS::StepFunctions::StateMachine resource
DefinitionUri property for the AWS::Serverless::StateMachine resource
S3 property for the AWS::CodeCommit::Repository resource
Encode:
Type: AWS::Lambda::Function
Properties:
FunctionName: !Sub "${AWS::StackName}-encode"
Description: Creates a MediaConvert encode job
Handler: index.handler
Role: !GetAtt EncodeRole.Arn
Code: encode.zip
$ aws cloudformation package \
--template-file regional-s3-assets/video-on-demand-on-aws.template \
--s3-bucket cf-templates-video-streaming-dev-ap-northeast-1 \
--output-template-file video-on-demand-on-aws.template
Encode:
Type: AWS::Lambda::Function
Properties:
FunctionName:
Fn::Sub: ${AWS::StackName}-encode
Description: Creates a MediaConvert encode job
Handler: index.handler
Role:
Fn::GetAtt:
- EncodeRole
- Arn
Code:
S3Bucket: cf-templates-video-streaming-dev-ap-northeast-1
S3Key: 3adefb317806e424ff6bb01771e807d5
-
Code
がS3Bucket
とS3Key
に変わっている -
S3Bucket
はコードがアップロードされたバケット名、S3Key
はオブジェクト名が設定される
変更セットの変更内容でbeforeValueに設定されている値と、既存のテンプレートの値が違う問題
InputValidate:
Type: AWS::Lambda::Function
Properties:
FunctionName:
Fn::Sub: ${AWS::StackName}-input-validate
Description: Validates the input given to the workflow
Handler: index.handler
Role:
Fn::GetAtt:
- InputValidateRole
- Arn
Code:
S3Bucket: cf-templates-video-streaming-dev-ap-northeast-1
S3Key: 56be14605fefc91ce64f2dc89ac1863d
Runtime: nodejs12.x
Timeout: 120
{
"type": "Resource",
"resourceChange": {
"action": "Modify",
"logicalResourceId": "InputValidate",
"physicalResourceId": "video-streaming-input-validate",
"resourceType": "AWS::Lambda::Function",
"replacement": "False",
"scope": [
"Properties"
],
"details": [
{
"target": {
"attribute": "Properties",
"name": "Code",
"requiresRecreation": "Never",
"path": "/Properties/Code/S3Key",
"beforeValue": "68ad9567d20eeb71f7a025a3ba5136ff",
"afterValue": "4a23b159c58af4b364b82c1a557a2701",
"attributeChangeType": "Modify"
},
"evaluation": "Static",
"changeSource": "DirectModification"
}
],
"beforeContext": "",
"afterContext": ""
}
},
S3Key
- 56be14605fefc91ce64f2dc89ac1863d
- LastModified: 2022-03-15T05:00:14+00:00
- 68ad9567d20eeb71f7a025a3ba5136ff
- 今動いてるLambda
- LastModified: 2024-10-23T04:15:49+00:00
- 4a23b159c58af4b364b82c1a557a2701
- 新しく作成されたLambda
- LastModified: 2024-11-08T08:45:05+00:00