在 apprunner 中使用参数存储值
using parameter store values in apprunner
我正在使用 aws copilot,但我想我可以将这个问题推广到 apprunner。试图从 Parameter Store 获取 envvars 集但没有成功。左边是我的 aws copilot manifest yml,我看到了这样设置的例子。它会导致在右侧配置一个 apprunner。在生产中,这些似乎被解释为文字而不是参数存储值
关于如何将 apprunner 正确连接到参数存储的任何想法?
遗憾的是,目前 App Runner 没有像 ECS 那样提供与 SSM 参数存储集成的内在方式。因此,Copilot 也不支持请求驱动服务的 secret
部分(请参阅 Copilot 文档 here)。至于环境变量,它们是你在清单中定义的,将作为文字注入。
但是,Copilot 中有一个解决方法,允许您的应用程序使用存储在 SSM 参数存储中的机密。您可以指定一个 addon template(例如,policy.yaml
)并将其放在 copilot/${svc name}/addons/
本地目录中,使用以下模板允许 App Runner 服务能够从 SSM 参数存储中检索:
Parameters:
App:
Type: String
Description: Your application's name.
Env:
Type: String
Description: The environment name your service, job, or workflow is being deployed to.
Name:
Type: String
Description: The name of the service, job, or workflow being deployed.
Resources:
MySSMPolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Sid: SSMActions
Effect: Allow
Action:
- "ssm:GetParameters"
Resource: !Sub 'arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter/*'
Outputs:
MySSMPolicyArn:
Value: !Ref MySSMPolicy
之后,在您的代码中,您可以使用 AWS SDK 调用 AWS SSM API 来检索您之前定义的任何机密。如果您还有其他问题,请告诉我!
我正在使用 aws copilot,但我想我可以将这个问题推广到 apprunner。试图从 Parameter Store 获取 envvars 集但没有成功。左边是我的 aws copilot manifest yml,我看到了这样设置的例子。它会导致在右侧配置一个 apprunner。在生产中,这些似乎被解释为文字而不是参数存储值
关于如何将 apprunner 正确连接到参数存储的任何想法?
遗憾的是,目前 App Runner 没有像 ECS 那样提供与 SSM 参数存储集成的内在方式。因此,Copilot 也不支持请求驱动服务的 secret
部分(请参阅 Copilot 文档 here)。至于环境变量,它们是你在清单中定义的,将作为文字注入。
但是,Copilot 中有一个解决方法,允许您的应用程序使用存储在 SSM 参数存储中的机密。您可以指定一个 addon template(例如,policy.yaml
)并将其放在 copilot/${svc name}/addons/
本地目录中,使用以下模板允许 App Runner 服务能够从 SSM 参数存储中检索:
Parameters:
App:
Type: String
Description: Your application's name.
Env:
Type: String
Description: The environment name your service, job, or workflow is being deployed to.
Name:
Type: String
Description: The name of the service, job, or workflow being deployed.
Resources:
MySSMPolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Sid: SSMActions
Effect: Allow
Action:
- "ssm:GetParameters"
Resource: !Sub 'arn:${AWS::Partition}:ssm:${AWS::Region}:${AWS::AccountId}:parameter/*'
Outputs:
MySSMPolicyArn:
Value: !Ref MySSMPolicy
之后,在您的代码中,您可以使用 AWS SDK 调用 AWS SSM API 来检索您之前定义的任何机密。如果您还有其他问题,请告诉我!