gpt4 book ai didi

amazon-web-services - AWS 部署环境并为开发和生产创建环境

转载 作者:行者123 更新时间:2023-12-05 02:17:06 24 4
gpt4 key购买 nike

大家好

我正在寻找一种部署我的应用程序的方法,其中包含:

  • API 网关
  • 动态数据库
  • Lambda 函数
  • 一个 S3 存储桶

我查看了 CloudFormation 和 CodeDeploy,但不确定如何在没有 EC2 的情况下继续...

我找到的所有信息都是针对 EC2 的,我还没有找到任何关于部署上面的应用程序的信息......

目标是拥有一个部署脚本,使用 AWS 的技术自动将应用程序部署到环境中。 (基本上复制我的环境)

如有任何帮助,我们将不胜感激。

编辑:我需要能够从一个 AWS 账户导出然后导入到另一个 AWS 账户。

干杯!

最佳答案

为了将您的 CloudFormation 堆栈部署到“不同”环境中,您必须参数化您的 CloudFormation 堆栈名称和资源名称。 (您不必在此示例中参数化 AWS::Serverless::Function 函数,因为如果未指定函数名称,CloudFormation 会自动创建一个函数名称,但对于大多数其他资源而言,这是必需的)

示例 CloudFormation 模板 cfn.yml 使用 Serverless Application Model (SAM) :

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Deploys a simple AWS Lambda using different environments.

Parameters:
Env:
Type: String
Description: The environment you're deploying to.

Resources:
ServerlessFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs12.x
CodeUri: ./
Policies:
- AWSLambdaBasicExecutionRole

MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'my-bucket-name-${Env}'

您可以添加更多资源,例如 DynamoDB 表。如果您使用 SAM 并在您的 AWS::Serverless::Function 资源中提供一个 Events 部分,则会自动创建 API 网关。另见 this SAM example code来自 serverless-app-examples存储库。

deploy.sh 脚本示例:

#!/usr/bin/env bash

LAMBDA_BUCKET="Your-S3-Bucket-Name"
# change this ENV variable depending on the environment you want to deploy
ENV="prd"
STACK_NAME="aws-lambda-cf-environments-${ENV}"

# now package the CloudFormation template which automatically uploads the Lambda function artifacts to S3 -> generated a "packaged" CloudFormation template cfn.packaged.yml
aws cloudformation package --template-file cfn.yml --s3-bucket ${LAMBDA_BUCKET} --output-template-file cfn.packaged.yml

# ... and deploy the packaged CloudFormation template
aws cloudformation deploy --template-file cfn.packaged.yml --stack-name ${STACK_NAME} --capabilities CAPABILITY_IAM --parameter-overrides Env=${ENV}

查看完整示例代码 here .只需使用 ./deploy.sh 部署脚本并更改 ENV 变量即可。

关于amazon-web-services - AWS 部署环境并为开发和生产创建环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48386903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com