抱歉,如果這是重復的,我會對試圖找到解決方案的博客和文章感到有點茫然。
我正在嘗試使用 AWS CDK 來部署堆疊 - 特別是在 S3 存盤桶上分層的 CloudFront 分布。我想從證書管理器中檢索證書,并且我還想更新 R53 中的托管區域。
我想將區域 ID 和證書 ARN 放在 SSM Parameter Store 中,并讓我的 CDK 應用程式從那里提取正確的 ID/ARN,以免將其留在我的代碼中。
我目前在我的 Go 代碼中提取這樣的值:
certArn := awsssm.StringParameter_ValueFromLookup(stack, certArnSSM)
certificate := awscertificatemanager.Certificate_FromCertificateArn(stack, wrapName("certificate"), certArn)
certArnSSM引數的路徑在哪里。
但是,當我運行時,synth我得到了這個:
panic: "ARNs must start with \"arn:\" and have at least 6 components: dummy-value-for-/dev/placeholder/certificateArn"
從一些閱讀來看,這是意料之中的。但是,我不確定解決它的“最佳實踐”方法。我不完全清楚如何使用Lazy來解決這個問題 - 我需要創建一個type并實作該Produce()方法嗎?
uj5u.com熱心網友回復:
我通過在我的代碼中將證書的 UUID 設定為變數,然后手動構建 ARN 來解決這個問題。不過,這感覺像是解決問題的錯誤方法。
createdArn := jsii.String(fmt.Sprintf("arn:aws:acm:us-east-1:%s:certificate/%s", *sprops.Env.Account, certUuid))
certificate := awscertificatemanager.Certificate_FromCertificateArn(stack, wrapName("certificate"), createdArn)
uj5u.com熱心網友回復:
我無法復制您的錯誤。以下合成和部署沒有錯誤,正確檢索certArn引數ssm作為有效的證書 arn 查找輸入:
func NewCertLookupStack(scope constructs.Construct, id string, props *awscdk.StackProps) awscdk.Stack {
stack := awscdk.NewStack(scope, &id, &props)
certArn := awsssm.StringParameter_ValueFromLookup(stack, jsii.String("/dummy/certarn"))
certificate := awscertificatemanager.Certificate_FromCertificateArn(stack, jsii.String("Certificate"), certArn)
awscdk.NewCfnOutput(stack, jsii.String("ArnOutput"), &awscdk.CfnOutputProps{
Value: certificate.CertificateArn(), // demonstrate it works: the correct cert arn storeed as a stack output
})
return stack
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/415858.html
標籤:
上一篇:如何確保S3上傳觸發lambda函式,但在同一個桶內復制資料不再觸發lambda函式?
下一篇:將AMI從AWS提取到本地
