如何指定S3存储桶区域SAM模板

时间:2019-09-16 13:16:46

标签: amazon-s3 serverless-application-model

我正在学习AWS无服务器应用程序模型。我正在尝试以下模型:

ExpandFilterSection

这是我的运行方式:

OpenQA.Selenium.ElementNotVisibleException: 'element not visible'

这是我收到的错误:

GetObject时发生错误。 S3错误代码:PermanentRedirect。 S3错误消息:存储桶位于以下区域:us-east-1。请使用该区域重试请求(服务:AWSLambdaInternal;状态代码:400;错误代码:InvalidParameterValueException

AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Resources: MyLambdaFunction: Type: 'AWS::Serverless::Function' Properties: Runtime: nodejs8.10 Handler: index.handler CodeUri: Bucket: artifacts-for-lambda Key: my-lambda-package.zip Events: MySchedule: Type: Schedule Properties: Schedule: rate(1 minute) MyS3Upload: Type: S3 Properties: Bucket: !Ref MyS3Bucket Events: s3:ObjectCreated:* MyS3Bucket: Type: 'AWS::S3::Bucket' Properties: BucketName: upload-something-here 是每个AWS配置文件的默认区域。

如果aws cloudformation deploy --capabilities CAPABILITY_NAMED_IAM --template-file sam-template.yaml --stack-name my-serverless-app 是我的默认区域,为什么我收到此错误消息,提示us-east-2?如何在无服务器脚本中为S3存储桶指定区域?

1 个答案:

答案 0 :(得分:1)

汤姆, 我在一个正在从事的项目中使用了SAM。您可以像这样使用它:

sam package --template-file template.yml \
              --output-template-file packaged.yml \
              --s3-bucket developing-sam-applications 
              --region YOUR_REGION

此外,您可以使用此命令在指定的区域进行部署:

sam deploy --template-file packaged.yml \
             --stack-name developing-sam-applications \
             --capabilities CAPABILITY_IAM
             --region YOUR_REGION

注意:请确保您在同一区域中具有存储桶和功能。如果要部署在其他区域,则需要该区域中的存储桶。